home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / swc_overflow.nasl < prev    next >
Text File  |  2005-01-14  |  3KB  |  99 lines

  1. #
  2. # This script was written by Renaud Deraison <deraison@cvs.nessus.org>
  3. #
  4. # Script audit and contributions from Carmichael Security <http://www.carmichaelsecurity.com>
  5. #      Erik Anderson <eanders@carmichaelsecurity.com>
  6. #      Added link to the Bugtraq message archive and Securiteam
  7. #
  8. # See the Nessus Scripts License for details
  9. #
  10.  
  11. if(description)
  12. {
  13.  script_id(10493);
  14.  script_version ("$Revision: 1.15 $");
  15.  
  16.  name["english"] = "SWC Overflow";
  17.  name["francais"] = "DΘpassement de buffer dans SWC";
  18.  script_name(english:name["english"], francais:name["francais"]);
  19.  
  20.  desc["english"] = "
  21. The CGI 'swc' (Simple Web Counter) is present and vulnerable
  22. to a buffer overflow when issued a too long value to the
  23. 'ctr=' argument.
  24.  
  25. An attacker may use this flaw to gain a shell on this host
  26.  
  27. Solution : Use another web counter, or patch this one by hand
  28.  
  29. Reference : http://online.securityfocus.com/archive/1/76818
  30. Reference : http://www.securiteam.com/unixfocus/5FP0O202AE.html
  31.  
  32. Risk factor : High";
  33.  
  34.  
  35.  desc["francais"] = "
  36. Le CGI 'swc' (Simple Web Counter) est prΘsent et vulnΘrable α un
  37. dΘpassement de buffer lorsqu'une valeur trop longue est donnΘe
  38. α l'argument 'ctr='.
  39.  
  40. Un pirate peut utiliser ce problΦme pour obtenir un shell sur
  41. ce systΦme.
  42.  
  43. Solution : Utilisez un autre compteur web, ou patchez celui-ci α
  44. la main
  45. Facteur de risque : SΘrieux";
  46.  
  47.  
  48.  script_description(english:desc["english"], francais:desc["francais"]);
  49.  
  50.  summary["english"] = "Checks for the presence of /cgi-bin/swc";
  51.  summary["francais"] = "VΘrifie la prΘsence de /cgi-bin/swc";
  52.  
  53.  script_summary(english:summary["english"], francais:summary["francais"]);
  54.  
  55.  script_category(ACT_GATHER_INFO);
  56.  
  57.  
  58.  script_copyright(english:"This script is Copyright (C) 2000 Renaud Deraison",
  59.         francais:"Ce script est Copyright (C) 2000 Renaud Deraison");
  60.  family["english"] = "CGI abuses";
  61.  family["francais"] = "Abus de CGI";
  62.  script_family(english:family["english"], francais:family["francais"]);
  63.  script_dependencie("find_service.nes", "no404.nasl");
  64.  script_require_ports("Services/www", 80);
  65.  exit(0);
  66. }
  67.  
  68. #
  69. # The script code starts here
  70. #
  71. include("http_func.inc");
  72. include("http_keepalive.inc");
  73.  
  74.  
  75. port = get_http_port(default:80);
  76.  
  77.  
  78. if(!get_port_state(port))exit(0);
  79.  
  80.  
  81. foreach dir (cgi_dirs())
  82. {
  83.  req = http_get(item:string(dir, "/swc?ctr=", crap(500)),
  84.              port:port);
  85.  r = http_keepalive_send_recv(port:port, data:req);
  86.  if( r == NULL ) exit(0);
  87.  
  88.  if("Could not open input file" >< r)
  89.  {
  90.    soc = http_open_socket(port);
  91.    req = http_get(item:string(dir, "/swc?ctr=", crap(5000)), port:port);
  92.    send(socket:soc, data:req);
  93.    r = recv_line(socket:soc, length:1024);
  94.    http_close_socket(soc);
  95.    if(ereg(pattern:"HTTP/[0-9]\.[0-9] 500 ", 
  96.        string:r))security_hole(port);
  97.  }
  98. }
  99.